home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / awt / TextComponent.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  6.3 KB  |  360 lines

  1. package java.awt;
  2.  
  3. import java.awt.event.TextEvent;
  4. import java.awt.event.TextListener;
  5. import java.awt.im.InputMethodRequests;
  6. import java.awt.peer.TextComponentPeer;
  7. import java.io.IOException;
  8. import java.io.ObjectInputStream;
  9. import java.io.ObjectOutputStream;
  10. import java.util.EventListener;
  11. import javax.accessibility.Accessible;
  12. import javax.accessibility.AccessibleContext;
  13. import sun.awt.InputMethodSupport;
  14.  
  15. public class TextComponent extends Component implements Accessible {
  16.    String text;
  17.    boolean editable = true;
  18.    int selectionStart;
  19.    int selectionEnd;
  20.    boolean backgroundSetByClientCode = false;
  21.    private transient boolean canAccessClipboard;
  22.    protected transient TextListener textListener;
  23.    private static final long serialVersionUID = -2214773872412987419L;
  24.    private int textComponentSerializedDataVersion = 1;
  25.    private boolean checkForEnableIM = true;
  26.  
  27.    TextComponent(String var1) throws HeadlessException {
  28.       GraphicsEnvironment.checkHeadless();
  29.       this.text = var1 != null ? var1 : "";
  30.       this.setCursor(Cursor.getPredefinedCursor(2));
  31.       this.checkSystemClipboardAccess();
  32.    }
  33.  
  34.    private void enableInputMethodsIfNecessary() {
  35.       if (this.checkForEnableIM) {
  36.          this.checkForEnableIM = false;
  37.  
  38.          try {
  39.             Toolkit var1 = Toolkit.getDefaultToolkit();
  40.             boolean var2 = false;
  41.             if (var1 instanceof InputMethodSupport) {
  42.                var2 = ((InputMethodSupport)var1).enableInputMethodsForTextComponent();
  43.             }
  44.  
  45.             this.enableInputMethods(var2);
  46.          } catch (Exception var3) {
  47.          }
  48.       }
  49.  
  50.    }
  51.  
  52.    public void enableInputMethods(boolean var1) {
  53.       this.checkForEnableIM = false;
  54.       super.enableInputMethods(var1);
  55.    }
  56.  
  57.    boolean areInputMethodsEnabled() {
  58.       if (this.checkForEnableIM) {
  59.          this.enableInputMethodsIfNecessary();
  60.       }
  61.  
  62.       return (this.eventMask & 4096L) != 0L;
  63.    }
  64.  
  65.    public InputMethodRequests getInputMethodRequests() {
  66.       TextComponentPeer var1 = (TextComponentPeer)this.peer;
  67.       return var1 != null ? var1.getInputMethodRequests() : null;
  68.    }
  69.  
  70.    public void addNotify() {
  71.       super.addNotify();
  72.       this.enableInputMethodsIfNecessary();
  73.    }
  74.  
  75.    public void removeNotify() {
  76.       synchronized(this.getTreeLock()) {
  77.          TextComponentPeer var2 = (TextComponentPeer)this.peer;
  78.          if (var2 != null) {
  79.             this.text = var2.getText();
  80.             this.selectionStart = var2.getSelectionStart();
  81.             this.selectionEnd = var2.getSelectionEnd();
  82.          }
  83.  
  84.          super.removeNotify();
  85.       }
  86.    }
  87.  
  88.    public synchronized void setText(String var1) {
  89.       this.text = var1 != null ? var1 : "";
  90.       TextComponentPeer var2 = (TextComponentPeer)this.peer;
  91.       if (var2 != null) {
  92.          var2.setText(this.text);
  93.       }
  94.  
  95.    }
  96.  
  97.    public synchronized String getText() {
  98.       TextComponentPeer var1 = (TextComponentPeer)this.peer;
  99.       if (var1 != null) {
  100.          this.text = var1.getText();
  101.       }
  102.  
  103.       return this.text;
  104.    }
  105.  
  106.    public synchronized String getSelectedText() {
  107.       return this.getText().substring(this.getSelectionStart(), this.getSelectionEnd());
  108.    }
  109.  
  110.    public boolean isEditable() {
  111.       return this.editable;
  112.    }
  113.  
  114.    public synchronized void setEditable(boolean var1) {
  115.       if (this.editable != var1) {
  116.          this.editable = var1;
  117.          TextComponentPeer var2 = (TextComponentPeer)this.peer;
  118.          if (var2 != null) {
  119.             var2.setEditable(var1);
  120.          }
  121.  
  122.       }
  123.    }
  124.  
  125.    public Color getBackground() {
  126.       return (Color)(!this.editable && !this.backgroundSetByClientCode ? SystemColor.control : super.getBackground());
  127.    }
  128.  
  129.    public void setBackground(Color var1) {
  130.       this.backgroundSetByClientCode = true;
  131.       super.setBackground(var1);
  132.    }
  133.  
  134.    public synchronized int getSelectionStart() {
  135.       TextComponentPeer var1 = (TextComponentPeer)this.peer;
  136.       if (var1 != null) {
  137.          this.selectionStart = var1.getSelectionStart();
  138.       }
  139.  
  140.       return this.selectionStart;
  141.    }
  142.  
  143.    public synchronized void setSelectionStart(int var1) {
  144.       this.select(var1, this.getSelectionEnd());
  145.    }
  146.  
  147.    public synchronized int getSelectionEnd() {
  148.       TextComponentPeer var1 = (TextComponentPeer)this.peer;
  149.       if (var1 != null) {
  150.          this.selectionEnd = var1.getSelectionEnd();
  151.       }
  152.  
  153.       return this.selectionEnd;
  154.    }
  155.  
  156.    public synchronized void setSelectionEnd(int var1) {
  157.       this.select(this.getSelectionStart(), var1);
  158.    }
  159.  
  160.    public synchronized void select(int var1, int var2) {
  161.       String var3 = this.getText();
  162.       if (var1 < 0) {
  163.          var1 = 0;
  164.       }
  165.  
  166.       if (var1 > var3.length()) {
  167.          var1 = var3.length();
  168.       }
  169.  
  170.       if (var2 > var3.length()) {
  171.          var2 = var3.length();
  172.       }
  173.  
  174.       if (var2 < var1) {
  175.          var2 = var1;
  176.       }
  177.  
  178.       this.selectionStart = var1;
  179.       this.selectionEnd = var2;
  180.       TextComponentPeer var4 = (TextComponentPeer)this.peer;
  181.       if (var4 != null) {
  182.          var4.select(var1, var2);
  183.       }
  184.  
  185.    }
  186.  
  187.    public synchronized void selectAll() {
  188.       String var1 = this.getText();
  189.       this.selectionStart = 0;
  190.       this.selectionEnd = this.getText().length();
  191.       TextComponentPeer var2 = (TextComponentPeer)this.peer;
  192.       if (var2 != null) {
  193.          var2.select(this.selectionStart, this.selectionEnd);
  194.       }
  195.  
  196.    }
  197.  
  198.    public synchronized void setCaretPosition(int var1) {
  199.       if (var1 < 0) {
  200.          throw new IllegalArgumentException("position less than zero.");
  201.       } else {
  202.          int var2 = this.getText().length();
  203.          if (var1 > var2) {
  204.             var1 = var2;
  205.          }
  206.  
  207.          TextComponentPeer var3 = (TextComponentPeer)this.peer;
  208.          if (var3 != null) {
  209.             var3.setCaretPosition(var1);
  210.          } else {
  211.             this.select(var1, var1);
  212.          }
  213.  
  214.       }
  215.    }
  216.  
  217.    public synchronized int getCaretPosition() {
  218.       TextComponentPeer var1 = (TextComponentPeer)this.peer;
  219.       int var2 = 0;
  220.       if (var1 != null) {
  221.          var2 = var1.getCaretPosition();
  222.       } else {
  223.          var2 = this.selectionStart;
  224.       }
  225.  
  226.       int var3 = this.getText().length();
  227.       if (var2 > var3) {
  228.          var2 = var3;
  229.       }
  230.  
  231.       return var2;
  232.    }
  233.  
  234.    public synchronized void addTextListener(TextListener var1) {
  235.       if (var1 != null) {
  236.          this.textListener = AWTEventMulticaster.add(this.textListener, var1);
  237.          this.newEventsOnly = true;
  238.       }
  239.    }
  240.  
  241.    public synchronized void removeTextListener(TextListener var1) {
  242.       if (var1 != null) {
  243.          this.textListener = AWTEventMulticaster.remove(this.textListener, var1);
  244.       }
  245.    }
  246.  
  247.    public synchronized TextListener[] getTextListeners() {
  248.       return (TextListener[])this.getListeners(TextListener.class);
  249.    }
  250.  
  251.    public <T extends EventListener> T[] getListeners(Class<T> var1) {
  252.       Object var2 = null;
  253.       if (var1 == TextListener.class) {
  254.          TextListener var3 = this.textListener;
  255.          return (T[])AWTEventMulticaster.getListeners(var3, var1);
  256.       } else {
  257.          return (T[])super.getListeners(var1);
  258.       }
  259.    }
  260.  
  261.    boolean eventEnabled(AWTEvent var1) {
  262.       if (var1.id == 900) {
  263.          return (this.eventMask & 1024L) != 0L || this.textListener != null;
  264.       } else {
  265.          return super.eventEnabled(var1);
  266.       }
  267.    }
  268.  
  269.    protected void processEvent(AWTEvent var1) {
  270.       if (var1 instanceof TextEvent) {
  271.          this.processTextEvent((TextEvent)var1);
  272.       } else {
  273.          super.processEvent(var1);
  274.       }
  275.    }
  276.  
  277.    protected void processTextEvent(TextEvent var1) {
  278.       TextListener var2 = this.textListener;
  279.       if (var2 != null) {
  280.          int var3 = var1.getID();
  281.          switch (var3) {
  282.             case 900:
  283.                var2.textValueChanged(var1);
  284.          }
  285.       }
  286.  
  287.    }
  288.  
  289.    protected String paramString() {
  290.       String var1 = super.paramString() + ",text=" + this.getText();
  291.       if (this.editable) {
  292.          var1 = var1 + ",editable";
  293.       }
  294.  
  295.       return var1 + ",selection=" + this.getSelectionStart() + "-" + this.getSelectionEnd();
  296.    }
  297.  
  298.    private void checkSystemClipboardAccess() {
  299.       this.canAccessClipboard = true;
  300.       SecurityManager var1 = System.getSecurityManager();
  301.       if (var1 != null) {
  302.          try {
  303.             var1.checkSystemClipboardAccess();
  304.          } catch (SecurityException var3) {
  305.             this.canAccessClipboard = false;
  306.          }
  307.       }
  308.  
  309.    }
  310.  
  311.    private void writeObject(ObjectOutputStream var1) throws IOException {
  312.       TextComponentPeer var2 = (TextComponentPeer)this.peer;
  313.       if (var2 != null) {
  314.          this.text = var2.getText();
  315.          this.selectionStart = var2.getSelectionStart();
  316.          this.selectionEnd = var2.getSelectionEnd();
  317.       }
  318.  
  319.       var1.defaultWriteObject();
  320.       AWTEventMulticaster.save(var1, "textL", this.textListener);
  321.       var1.writeObject((Object)null);
  322.    }
  323.  
  324.    private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException, HeadlessException {
  325.       GraphicsEnvironment.checkHeadless();
  326.       var1.defaultReadObject();
  327.       this.text = this.text != null ? this.text : "";
  328.       this.select(this.selectionStart, this.selectionEnd);
  329.  
  330.       Object var2;
  331.       while(null != (var2 = var1.readObject())) {
  332.          String var3 = ((String)var2).intern();
  333.          if ("textL" == var3) {
  334.             this.addTextListener((TextListener)var1.readObject());
  335.          } else {
  336.             var1.readObject();
  337.          }
  338.       }
  339.  
  340.       this.enableInputMethodsIfNecessary();
  341.       this.checkSystemClipboardAccess();
  342.    }
  343.  
  344.    int getIndexAtPoint(Point var1) {
  345.       return -1;
  346.    }
  347.  
  348.    Rectangle getCharacterBounds(int var1) {
  349.       return null;
  350.    }
  351.  
  352.    public AccessibleContext getAccessibleContext() {
  353.       if (this.accessibleContext == null) {
  354.          this.accessibleContext = new AccessibleAWTTextComponent(this);
  355.       }
  356.  
  357.       return this.accessibleContext;
  358.    }
  359. }
  360.